#ifndef _STDIO_H
#define _STDIO_H

#include <types.h>
#include <stdarg.h>
#include <compiler.h>

int getchar(void);
int putc(int c);
int puts(const char *s);

#ifndef __TOP_HALF__

int puts_u8_hex(uint8_t dat);
int puts_u16_hex(uint16_t dat);
int puts_u32_hex(uint32_t dat);

int printf(const char *fmt, ...) __printf(1, 2);
int vprintf(const char *fmt, va_list args) __printf(1, 0);
int sprintf(char * buf, const char *fmt, ...) __printf(2, 3);
int vsprintf(char *buf, const char *fmt, va_list args) __printf(2, 0);
int snprintf(char *buf, size_t size, const char *fmt, ...) __printf(3, 4);
int vsnprintf(char *buf, size_t size, const char *fmt, va_list args) __printf(3, 0);

#endif

#endif /* _STDIO_H */

